Skip to main content

How is Fuzzing different from propertybased testing like Quickcheck echidna foundry

  1. There is a difference in philosophy and how the fuzzers integrate in the development workflow. Quickcheck-style fuzzers expect the user to write tests where some inputs are fuzzable. Think of it as unit tests on steroids. However, someone still needs to write all those tests (including mocks, etc.) since they typically only focus on one or two individual functions. While Diligence Fuzzing is also able to handle this use case, it promotes a more automated approach that is centered around specifications that are checked for large systems (very close to those deployed) with one or many contracts.

  2. Diligence Fuzzing is powered by our in-house Harvey fuzzer. Unlike many other fuzzers it’s been continuously improved over almost five years (initially used in our MythX service). It incorporates many state-of-the-art techniques that other fuzzers don’t yet implement. We also regularly publish new analysis techniques in top conferences, such as FSE or ICSE. While it is difficult to compare fuzzers, our internal tests with open-source alternatives show that the differences can be staggering. For instance, in a comparison on four different benchmarks 1 minute of Diligence Fuzzing achieved more than twice the coverage of a 1-hour fuzzing campaign with a popular open-source alternative.